package org.execute.tool.合并txt文件;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MergeMultipleTxtFiles {
    public static void main(String[] args) {
        // 这里可以替换为你指定的路径
        String path = "E:\\工作记录\\2024_12\\discord\\新建文件夹 (2)";
        File dir = new File(path);
        // 判断指定的路径是否是一个目录
        if (!dir.isDirectory()) {
            // 如果不是目录，则输出提示信息
            System.out.println("指定的路径不是一个目录");

            return;
        }

        List<File> txtFiles = new ArrayList<>();
        findTxtFiles(dir, txtFiles);

        // 创建一个File对象，表示输出文件
        File outputFile = new File(dir, "merged.txt");

        try {
            FileWriter writer = new FileWriter(outputFile);
            for (File file : txtFiles) {
                BufferedReader reader = new BufferedReader(new FileReader(file));
                String line;
                while ((line = reader.readLine())!= null) {
                    writer.write(line);
                    writer.write("\n");
                }
                reader.close();
            }
            writer.close();
            System.out.println("多个TXT文档合并成功。");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void findTxtFiles(File dir, List<File> txtFiles) {
        File[] files = dir.listFiles();
        if (files!= null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    findTxtFiles(file, txtFiles);
                } else if (file.getName().endsWith(".txt")) {
                    txtFiles.add(file);
                }
            }
        }
    }
}
